1. Field of the Invention
The present invention relates to the fields of computing and networking and, more particularly, to a service-oriented architecture for enterprises that support multiple interface channels.
2. Description of the Related Art
Within any competitive market, businesses strive to distinguish their products and services from those of their competitors. One way to accomplish this is by positioning themselves within different markets of commerce favored by consumers. These markets can include store-front markets and mail-based markets, such as direct marketing by mail and catalogue based marketing. Markets can also include telephony markets and Internet-based markets, with Internet markets showing a strong increase in market share within recent years.
Customers increasingly expect to be able to interact with a business enterprise seamlessly across multiple markets using different interface channels. For example, a customer purchasing a book from a bookstore chain via a Web site (Internet interface channel) expects to be able to return the book at a local store (store-front interface channel). Similarly, a purchaser of an item from a department catalog (postal mail interface channel) expects to be to contact a service representative through a toll free phone number (telephone interface channel) to determine shipment status. In yet another example, bank customers expect to be able to monitor account activity and conduct transactions through automatic teller machines (kiosk or self-service channel) as well as through a bank's Web site (Internet interface channel).
Business enterprises have conventionally established different software systems for each the various interface channels and/or for each of the various markets at which products or services are provided. That is, one software system can be designed for employee use at store fronts. A separate software system can be used by customer service representatives and interactive voice response systems that provide telephony based services to customers. Yet another software system can provide Web-based access to customers. Another software system can be used for employee payroll and for business expense accounting. Still another software system can be used for enterprise logistics, item warehousing, and item procurement.
It can be difficult to construct interfaces between each of these varying systems of a business enterprise so that information within the systems is synchronized. A lack of synchronization, however, can result in a shortcoming in a customer's experience, as a customer's information from one channel is not available through another channel. In extreme cases, different store-fronts or outlets of the same interface channel, such as different retail outlets, will not have data synchronized with one another, so that a customer's interactions with one retail outlet are not available to the customer or service agent at a different retail outlet.
One of the key technical challenges in developing a software system based on a service oriented architecture (SOA) architectural style is determining the right level of granularity for services. The foundations of SOA can be found in the distributed object programming models such as Distributed COM (DCOM), CORBA, and Java Remote Method Invocation (RMI), however those prior models were more a scale-up from object-oriented programming than a true component service programming model. The challenge is that these services range in granularity from document processing (for example, receiving as input a ledger, request for quote (RFQ), or other large complex document) to simple remote method invocation as previously seen in distributed object processing.
When considering all of the above factors, it is not surprising that enterprises spend enormous sums attempting to maintain, integrate, and update their software systems to provide the appropriate level of granularity in a number of different services. Many of these enterprises find that their expensive and tightly coupled software systems become outdated too quickly or is too inflexible to permit a new desired innovation to be implemented, without an infrastructure redesign, which is often cost prohibitive. Thus, even the best conventionally implemented enterprise software systems that initially provide a competitive advantage can become a competitive liability in years to come.
A new approach for implementing software systems among an enterprise is needed. This approach should utilize a new component service processing model as further described below.